package jiaxintang.bookstore;

import jiaxintang.bookstore.dao.UserMapper;
import jiaxintang.bookstore.domain.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class test {
    /**
     * mybatis入门案例
     */
    /**
     * mybatis入门案例
     */
    public static void main(String[] args) throws IOException {
        //1.读取配置文件
        InputStream in = Resources.getResourceAsStream("config.xml");
        //2.创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3.使用工厂生成SqlSession对象
        SqlSession session = factory.openSession();
        //4.使用SqlSession创建Dao接口的代理对象（动态代理，增强方法功能，使得接口的空方法可以实现需求）
        UserMapper userDao = session.getMapper(UserMapper.class);
        //5.使用代理对象执行方法(方法已经被增强过了，可以实现需求)
        List<User> users = userDao.findAll();
        for (User user : users) {
            System.out.println(user.getUserId()+user.getUserName()+user.getEmail());
        }
        //6.释放资源
        session.close();
        in.close();
    }


}
